/*
 * Filename:    WorkFlowService.java
 * Copyright:   2014 中国平安保险（集团）股份有限公司 版权所有
 * Company:     平安科技养老险及健康险系统开发部
 * Create at:   2014年10月29日
 */
package com.paic.mhis.hcpms.trust.biz.service;

import java.util.List;

import com.paic.mhis.hcpms.common.workflow.dto.HcpmsWFTaskDTO;
import com.paic.mhis.hcpms.common.workflow.dto.WorkFlowActinstDTO;
import com.paic.mhis.hcpms.common.workflow.dto.WorkFlowGtasksDTO;
import com.paic.mhis.hcpms.common.workflow.dto.WorkFlowTaskTypeDTO;
import com.paic.mhis.hcpms.common.workflow.vo.HcpmsWFProcessVO;
import com.paic.mhis.hcpms.common.workflow.vo.HcpmsWorkFlowVO;

public interface IntegrityWFService {

	HcpmsWFTaskDTO getWorkFlowTask(HcpmsWFTaskDTO dto);

	HcpmsWFTaskDTO startProcess(HcpmsWorkFlowVO vo) throws Exception;

	HcpmsWFTaskDTO processFlow(HcpmsWorkFlowVO vo) throws Exception;

	void processWorkFlow(HcpmsWorkFlowVO vo);

	void topWorkFlow(HcpmsWorkFlowVO vo);

	HcpmsWFProcessVO getWFProcsee(HcpmsWorkFlowVO vo);

	// 查询流程中的节点列表
	public List<WorkFlowActinstDTO> getActinstInfo(String taskType);

	// 查询查询代办任务
	public List<WorkFlowGtasksDTO> getGtasks(String assigner, String role);

	// 查询查询代办任务-根据当前处理人
	public List<WorkFlowGtasksDTO> getGtasksByAssigner(String assigner);

	// 查询查询代办任务-根据用户组
	public List<WorkFlowGtasksDTO> getGtasksByGroup(String role);

	// 查询任务的当前可操作跳转
	public List<WorkFlowGtasksDTO> getOperatorTran(String assigner, List<String> role, List<String> taskNo);

	// 根据任务类型获取流程
	public WorkFlowTaskTypeDTO getWFNoByTaskType(String taskType) throws Exception;

	public HcpmsWFTaskDTO updateWorkFlowAssigner(String taskNo, String assigner) throws Exception;

	// 判断操作人是否有操作权限和锁定一个组中的操作人
	String vilidateOrBindUser(HcpmsWorkFlowVO vo);

	// 关闭流程
	public void deleteWorkFlow(HcpmsWorkFlowVO vo);
}